This invention relates generally to middleware tools and processes for computer systems for communicating between disparate applications and systems that utilize different languages and/or communications protocols, and more particularly to schema-less middleware methods and apparatus that automatically parse and generate code to translate and communicate commands and responses between such applications and systems without the necessity of creating individualized logic for each different type of system and application.
Large enterprises typically employ multiple different computer hardware and software platforms comprising different types of computer systems and applications that must interface and communicate with each other. Generally, these systems and applications employ different languages and communication protocols, and interfacing the systems and applications requires a great deal of custom middleware that must be individualized for each different system and each different application. Creating and maintaining this middleware is a resource intensive operation. Every upgrade or new release of software by manufacturers of such systems and applications generally requires an upgrade or rewrite of corresponding middleware. This may require rewriting a large number of lines of middleware code (for example, several thousand lines of code) which can require significant periods of time and resources. For instance, an enterprise may have a distributed storage system comprising a plurality of different types and versions of storage arrays to which its employees and/or customers must interface using multiple different types and versions of client applications. Middleware individualized for interfacing each different storage array and/or application must be provided and maintained. Every time a change is made in a storage array or a new or changed application is introduced, new or changed middleware is required. In addition to the effort required for updating the middleware to accommodate the changes, generating or rewriting large amounts of middleware code inevitably introduces programming bugs. Finding and correcting these often requires significant effort.
It is desirable to provide tools and processes for automatically generating and updating middleware code that interfaces disparate computer systems and applications to accommodate changes in such computer systems and applications, and it is to these ends that the present invention is directed.